package com.lanyan.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.lanyan.system.domain.vo.ProductVo;
import com.baomidou.mybatisplus.annotation.TableId;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lanyan.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lanyan.common.core.domain.BaseEntity;

import java.util.List;
import java.util.Set;

/**
 * 商品对象 product
 *
 * @author lanyan
 * @date 2024-11-26
 */
@Data
public class Product extends ProductVo
{
    private static final long serialVersionUID = 1L;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 轮播图 */
    @Excel(name = "轮播图")
    @ApiModelProperty("轮播图")
    private String swiperImg;

    /** 一级分类id */
    @Excel(name = "一级分类id")
    @ApiModelProperty("一级分类id")
    private Long topClassifyId;

    /** 所属分类 */
    @Excel(name = "所属分类")
    @ApiModelProperty("所属分类")
    private Long classifyId;

    /** 详情 */
    @Excel(name = "详情")
    @ApiModelProperty("详情")
    private String details;

    /** 是否推荐（0平常 1推荐） */
    @Excel(name = "是否推荐", readConverterExp = "0=平常,1=推荐")
    @ApiModelProperty("是否推荐（0平常 1推荐）")
    private String isCommend;

    /** 多规格（0单规格 1多规格） */
    @Excel(name = "多规格", readConverterExp = "0=单规格,1=多规格")
    @ApiModelProperty("多规格（0单规格 1多规格）")
    private String isMs;

    /** 辅助参数 */
    @Excel(name = "辅助参数")
    @ApiModelProperty("辅助参数")
    private String mate;

    /** 售卖状态（0下架 1上架） */
    @Excel(name = "售卖状态", readConverterExp = "0=下架,1=上架")
    @ApiModelProperty("售卖状态（0下架 1上架）")
    private String isSale;

    /** 需要付款（0无需 1需要） */
    @Excel(name = "需要付款", readConverterExp = "0=无需,1=需要")
    @ApiModelProperty("需要付款（0无需 1需要）")
    private String needPay;

    @TableField(exist = false)
    private List<Sku> skus;

    @TableField(exist = false)
    private List<SkuName> sns;

    @TableField(exist = false)
    private Integer num;

    @TableField(exist = false)
    @ApiModelProperty("配送类型（0及时配送 1择日配送）")
    private String isTimely;

    @TableField(exist = false)
    private Set<Long> classIdList;

    @TableField(exist = false)
    private String topClassifyIdOne;

    @TableField(exist = false)
    private String topClassifyIdTwo;
}
